package com.jlpay.open.jlpay.sdk.java.model.openmerch.query.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.BaseResponse;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * 商户渠道信息查询响应
 *
 * @author chenjunhong
 * @date 2024/4/9
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class MerchChannelInfoQueryResponse extends BaseResponse {
    /**
     * 商户号
     */
    private String merchNo;

    /**
     * 商户名称
     */
    private String merchName;

    /**
     * 渠道信息
     */
    private List<ChannelInfo> channelInfo;

    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
    public static class ChannelInfo {
        /**
         * 渠道ID
         * 15-银联
         * 26-连通
         * 10011-银联微信
         * 10009-银联支付宝
         * 10017-网联微信
         * 10018-网联支付宝
         */
        private String channelId;

        /**
         * 渠道服务商编号
         */
        private String channelOrgId;

        /**
         * 渠道商户号
         */
        private String channelMerchNo;

        /**
         * 渠道商户名称
         */
        private String channelMerchName;

        /**
         * 渠道商户经营名称
         */
        @JsonProperty("channel_merch_shortname")
        private String channelBusinessName;

        /**
         * 报备状态
         * 0-报备中
         * 1-报备成功
         * 2-报备失败
         */
        @JsonProperty("report_status")
        private String reportedFlag;

        /**
         * 失败原因
         */
        private String failReason;

        /**
         * 报备时间
         */
        @JsonProperty("report_time")
        private String reportedTime;

        /**
         * 微信费率类型
         */
        private String wxFeeType;

        /**
         * 支付宝费率类型
         */
        private String aliFeeType;
    }
}
